"""
此文件作用说明：
-保存所有配置信息详情
    -设置基础类配置信息类
        -下设各模式配置信息， 继承基础类配置信息
"""""

from datetime import timedelta
from redis import StrictRedis

# 设置配置信息 （基础类配置信息）
class Config(object):

    # 设置debug模式
    DEBUG = True
    SECRET_KEY = "renzhichuxingbenshan"

    # 设置数据库配置信息
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:mysql@127.0.0.1:3306/Flask_info"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # 设置redis配置信息
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # 设置session配置信息
    SESSION_TYPE = "redis"
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    SESSION_USE_SIGNER = True
    PERMANENT_SESSION_LIFETIME = timedelta(days=2)

# 设置开发模式配置信息类
class DevelopConfig(Config):
    pass

# 设置生产模式配置信息类
class ProductConfig(Config):
    DEBUG = False

# 设置测试模式配置信息类
class TestingConfig(Config):
    TESTING = True # 测试阶段出错，可定位报错处

# 创建config字典，方便不同类型配置信息的调用
config_dict = {
    "develop": DevelopConfig,
    "product": ProductConfig,
    "testing": TestingConfig
}